import Vue from 'vue'
import Vuex from 'vuex'
import axios from 'axios'
Vue.use(Vuex)

// 导入包
import createPersistedState from 'vuex-persistedstate'

export default new Vuex.Store({
  plugins: [createPersistedState()],
  // 存储数据
  state: {
    token: '',
    // 存储用户信息
    userInfo: {}
  },
  getters: {
  },
  // 同步更新state数据
  mutations: {
    // 更新token值
    updateToken(state, token){
      state.token = token
    },
    // 更新用户信息
    updateUserInfo(state, info) {
      state.userInfo = info
    }
  },
  actions: {
    // 进行异步请求, 获取用户信息
    async getUserInfo(context){
      // 发送请求
      const { data: res } = await axios.get('/my/userinfo')
      console.log(res);
      // 提交给mutations进行同步更新
      context.commit('updateUserInfo', res.data)
    }
  },
  modules: {
  }
})
